package controlador;

import interfaces.InterfazRemotaAdministracion;

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.util.List;

import dto.MesaDTO;
import dto.MesaSimpleDTO;
import dto.MozoDTO;
import dto.SectorDTO;

public class ControladorSuc {
	InterfazRemotaAdministracion objetoRemoto;
	private static ControladorSuc instancia;

	private ControladorSuc() {
		getStub();
	}

	public static ControladorSuc getInstancia() {
		if (instancia == null)
			instancia = new ControladorSuc();
		return instancia;
	}

	public boolean getStub() {

		try {
			objetoRemoto = (InterfazRemotaAdministracion) Naming
					.lookup(InterfazRemotaAdministracion.url);
			System.out.println("Obtenido el servicio de la Instancia Remota "
					+ InterfazRemotaAdministracion.url);
			return true;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return false;
	}
	
	public List<MesaDTO> listarMesasPorSector(SectorDTO sector,int cantComensales) {
		
		try {
			return objetoRemoto.listarMesasPorSector(sector, cantComensales);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
	
	public List<MesaDTO> armarMesaCompuesta(SectorDTO sector, int cantComensales){
		
		try {
			return objetoRemoto.armarMesaCompuesta(sector, cantComensales);

		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	
	public void abrirMesa(MesaSimpleDTO mesa,MozoDTO mozo){
		try {
			objetoRemoto.AbrirMesa(mesa,mozo);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public void abrirMesaComp(List<MesaSimpleDTO> mesasDto,MozoDTO mozo){
		try {
			objetoRemoto.AbrirMesaComp(mesasDto,mozo);
		} catch (RemoteException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	

}
